<?php 
/**
* teacher管理组卷的入口
*/
class Teacher_module extends CI_Controller
{
	
	function __construct()
	{
		parent::__construct();
		//登陆状态检测
		if(!$this->session->userdata('user_in'))
			redirect('home');
		//权限检测
		if($this->session->userdata('role_id') != 2)
			redirect('home');
	}

	function index()
	{
		//准备数据
		$this->load->model('module_model');
		$this->load->model('teacher_model');
		$me=$this->teacher_model->get_by_username($this->session->userdata('username'));
		$data['modules']=$this->module_model->get_modules_by_teacher_id($me['id']);

		$data['title']='组卷';
		$this->load->view('teacher_module/index',$data);

	}

	/**
	 * 查看一个模块
	 * @param  integer $id [description]
	 * @return [type]      [description]
	 */
	function check($id=0)
	{
		$this->load->model('module_model');
		$module=$this->module_model->get_module_by_id($id);
		if(!$module)
			return $this->load->view('error');
		$data['title']='查看模块';
		$data['module']=$module;
		$data['relative_test_points']=$this->module_model->get_relative_test_point($module['id']);

		$this->load->view('teacher_module/check',$data);


	}

	/**
	 * 编辑一个模块
	 * @param  [type] $id [description]
	 * @return [type]     [description]
	 */
	function edit($id=0)
	{
		if($id)
		{
			//get方法
			$this->load->model('module_model');
			$module=$this->module_model->get_by_id($id);
			if(!$module)
				return $this->load->view('error');
			$data['title']='编辑模块';
			$data['module']=$module;

			$this->load->model('test_point_model');
			if($module['type']==0)
				$data['test_points']=$this->module_model->get_relative_test_point($module['id']);
			else
				$data['test_points']=$this->module_model->get_relative_test_point($module['parent_id']);
			
			$data['relative_test_points']=$this->module_model->get_relative_test_point($module['id']);

			$this->load->view('teacher_module/edit',$data);
		}
		else
		{
			//读取数据
			$this->load->model('module_model');
			$id=$this->input->post('module_id');
			$module=$this->module_model->get_by_id($id);
			if(!$module)
				return $this->load->view('error');

			if($this->form_validation->run('teacher_module/edit'))
			{

				//post方法
				$name=$this->input->post('module_name');
				$time_limit=$this->input->post('module_time_limit');
				$type=1;
				$relative_test_points=$this->input->post('relative_test_points');

				$this->load->model('teacher_model');
				$me=$this->teacher_model->get_by_username($this->session->userdata('username'));
				if($module['type']==1)
				{
					//如果是自定义类型，做更新操作
					//将模块写入数据库
					$item = array(
						'name' => $name,
						'time_limit' => $time_limit,
						'type' => $type,
						 );
				
					//数据库操作
					if($this->module_model->delete_relative_test_point($id)&&
						$this->module_model->add_relative_test_point($id,$relative_test_points)&&
						$this->module_model->update($id,$item)	
						)
					{
						$this->session->set_flashdata('message','操作成功');
						redirect('teacher_module/index');	
					}
					else
					{
						$this->session->set_flashdata('message','操作失败');
						redirect('teacher_module/index');	
					}
				}
				else
				{
					//如果是系统模块，做新建操作
					$item = array(
						'name' => $name,
						'time_limit' => $time_limit,
						'type' => $type,
						'parent_id'=>$module['id'],
						'teacher_id'=>$me['id']
						 );
					$this->load->model('module_model');

					if($this->module_model->add($item))
					{
						$module_id=$this->db->insert_id();
						//添加模块和考点的关系
						if($this->module_model->add_relative_test_point($module_id,$relative_test_points))
						{
							$this->session->set_flashdata('message','操作成功');
							redirect('teacher_module/index');		
						}
					}
					$this->session->set_flashdata('message','操作失败');
					redirect('teacher_module/index');
					
					
				}
				
			}
			else
			{
				//验证失败
				//get方法
				$data['title']='编辑模块';
				$data['module']=$module;

				$this->load->model('test_point_model');
				$data['test_points']=$this->test_point_model->get_all();
				
				$data['relative_test_points']=$this->module_model->get_relative_test_point($module['id']);

				$this->load->view('admin_module/edit',$data);
			}
		} 
	}

	/**
	 * 老师删除一个自定义模块
	 * @param  [type] $id [description]
	 * @return [type]     [description]
	 */
	function delete($id)
	{
		$this->load->model('module_model');
		$module=$this->module_model->get_by_id($id);
		if(!$module)
			return $this->load->view('error');
		//如果是系统类型的模块（考卷），阻止删除
		if($module['type']==0)
			return $this->load->view('error');

		if($this->module_model->delete_cascade($id))
			$this->session->set_flashdata('message','操作成功');
		else
			$this->session->set_flashdata('message','存在相关引用，操作失败');

		redirect('teacher_module/index');

	}
}
 